/*  
  -- The Lime II Project -- 

  A tuplespaces-based middleware for coordinating agents and mobile hosts.
  Copyright (C) 2005.
  Gian Pietro Picco, Amy L. Murphy, Lorenzo Bellini.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  Lesser General Public License for more details.

  You should have received this copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
 */

package lime2;

/**
 * Defines the name keys and the default values for the properties of Lime.
 * 
 * @author Gian Pietro Picco
 * @author Amy Murphy
 * @author Lorenzo Bellini
 */

public interface PropertyKeys {
	// these keys/values should be manipulated by application programmers and
	// users (.. by means of class Launcher, too)

	/** Name key for the multicast address. */
	final static String MCASTADDR_KEY = "mcastaddr";

	/** Default value for the multicast address. */
	final static String MCASTADDR_VAL = "230.0.0.6";

	/** Name key for the multicast port. */
	final static String MCASTPORT_KEY = "mcastport";

	/** Default value for the multicast port. */
	final static String MCASTPORT_VAL = "6000";

	/** Name key for the unicast port. */
	final static String UCASTPORT_KEY = "port";

	/** Default value for the unicast port. */
	final static String UCASTPORT_VAL = "6002";

	/** Name key for the tuplespace factory. */
	final static String TSFACTORY_KEY = "tsfactory";

	/** Default value for the tuplespace factory. */
	final static String TSFACTORY_VAL = "lights.dracots.TupleSpaceFactory";

	/** Name key for the communication adapter to use. */
	final static String CAFACTORY_KEY = "ca";

	/** Default value for the communication adapter to use. */
	final static String CAFACTORY_VAL = "lime2.ca.treeplain.TreePlainCA";

	/** Default key for the http diagnostics port. */
	final static String HTTP_PORT_KEY = "http";

	/** Default value for the http diagnostics port (-1 = service disabled). */
	final static String HTTP_PORT_VAL = "-1";

	/** Default key for the auto-engage option. */
	final static String DO_ENGAGE_KEY = "engage";

	/** Default value for the auto-engage option. */
	final static String DO_ENGAGE_VAL = "true";

	/** Default key for the print remote messages option. */
	final static String DO_SEEMSG_KEY = "do_seemsg";

	/** Default value for the print remote messages option. */
	final static String DO_SEEMSG_VAL = "false";
	
	/** Default key for the tree multicast */
	final static String TREE_MULTICAST_KEY = "tree_multicast";
	
	/** Default value for the tree multicast */
	final static String TREE_MULTICAST_VAL = "true";

	// these keys/values should be manipulated only by system programmers; they
	// are explained in class LimeConstants

	final static String FRAGM_OUT_KEY = "fragm_out";
	final static String FRAGM_OUT_VAL = "false";
	final static String DEFRAG_IN_KEY = "defrag_in";
	final static String DEFRAG_IN_VAL = "false";
	final static String FRAGS_SIZ_KEY = "frags_siz";
	final static String FRAGS_SIZ_VAL = "1024";
	final static String FRAGS_RTM_KEY = "frags_rtm";
	final static String FRAGS_RTM_VAL = "2000";
	final static String FRAGS_DFS_KEY = "frags_dfs";
	final static String FRAGS_DFS_VAL = "3";
	final static String FRAGS_OVR_KEY = "frags_ovr";
	final static String FRAGS_OVR_VAL = "100";
	final static String THREADSPL_KEY = "threadspl";
	final static String THREADSPL_VAL = "5";
	final static String CACHE_DUP_KEY = "cache_dup";
	final static String CACHE_DUP_VAL = "true";
	final static String CACHE_SIZ_KEY = "cache_siz";
	final static String CACHE_SIZ_VAL = "50";
	final static String CA_RETRYF_KEY = "ca_retryf";
	final static String CA_RETRYF_VAL = "3";
	final static String DETECT_PH_KEY = "detect_ph";
	final static String DETECT_PH_VAL = "2000";
	final static String MESH_BROADCAST_PH_KEY = "mesh_broadcast_ph";
	final static String MESH_BROADCAST_PH_VAL = "5000";
	final static String DELETE_TM_KEY = "delete_tm";
	final static String DELETE_TM_VAL = "4000";
	final static String RFRSH_MAX_KEY = "rfrsh_max";
	final static String RFRSH_MAX_VAL = "false";
	final static String ADV_PHASE_KEY = "adv_phase";
	final static String ADV_PHASE_VAL = "1";
	final static String NOL_TIMER_KEY = "nol_timer";
	final static String NOL_TIMER_VAL = "3000";
	final static String NOL_SLEEP_KEY = "nol_sleep";
	final static String NOL_SLEEP_VAL = "6000";
	final static String UDP_BUFFR_KEY = "udp_buffr";
	final static String UDP_BUFFR_VAL = "5000";
	final static String STD_TIMER_KEY = "std_timer";
	final static String STD_TIMER_VAL = "2500";
	final static String FACT_INGG_KEY = "fact_ingg";
	final static String FACT_INGG_VAL = "3";
	final static String PACKED_SZ_KEY = "packed_sz";
	final static String PACKED_SZ_VAL = "5";
	final static String CACHE_TCP_KEY = "ca.plain.cache_tcp";
	final static String CACHE_TCP_VAL = "true";
	final static String KEEPA_TCP_KEY = "ca.plain.keepa_tcp";
	final static String KEEPA_TCP_VAL = "false";
	final static String NAME_LMAX_KEY = "name_lmax";
	final static String NAME_LMAX_VAL = "20";
	final static String FORCE_GWR_KEY = "force_gwr";
	final static String FORCE_GWR_VAL = "1";
	final static String LSYS_NAME_KEY = "lsys_name";
	final static String LSYS_NAME_VAL = "system";
	final static String LSYS_POLC_KEY = "lsys_polc";
	final static String LSYS_POLC_VAL = String.valueOf(Policies.DEFAULT);
}
